# 2147483647 //2147483647=2147483647 #这个数据本地运行了好久
# 2147483646 //2147483646=2*3^2*7*11*31*151*331
# 97532468=2^2*11*17*101*1291
# 1/5错误 25ms 2944KB

def divPrime(num): 
    res=dict()
    while True:
        for i in range(2,num+1):   #range函数左取右不取，从2检索到n..num+1
            b=num%i                #计算余数
            if b ==0:            #条件判断，如果余数是0，i就是n的一个素因数
                res.setdefault(i,0) #初始化某个健
                res[i]+=1           #次数加1
                num=num//i           #将n的值除以这个素因数，即将这个素因数去掉
                break            #结束循环，进入下一轮while循环
        else:
            break                #若for in 循环没有执行break，即n的素因数已经取完，则结束while循环
    
    return res

num=int(input())
res=divPrime(num)
if res:
    ans=[]
    for k,v in res.items():
        if k==num:
            print(f"{num}={k}")
            break
        if v==1:
            ans.append(k)
        else:
            ans.append(f"{k}^{v}")
    else:
        print(num,"=",sep="",end="")
        print(*ans,sep='*')

else:
    print(num)
